package com.chaoxi.picturebackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chaoxi.picturebackend.model.dto.space.analyze.*;
import com.chaoxi.picturebackend.model.entity.Space;
import com.chaoxi.picturebackend.model.entity.User;
import com.chaoxi.picturebackend.model.vo.space.analyze.*;

import java.util.List;

public interface SpaceAnalyzeService extends IService<Space> {
    /**
     * 获取空间使用情况分析(针对不同图库)
     *
     * @param spaceUsageAnalyzeRequest 请求参数
     * @param loginUser 登录用户
     * @return 空间使用情况分析响应
     */
    SpaceUsageAnalyzeResponse getSpaceUsageAnalyze(SpaceUsageAnalyzeRequest spaceUsageAnalyzeRequest, User loginUser);

    /**
     * 获取空间分类分析数据
     *
     * @param spaceCategoryAnalyzeRequest 空间分类分析请求参数
     * @param loginUser 当前登录用户
     * @return 空间分类分析响应列表
     */
    List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyze(SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, User loginUser);

    /**
     * 获取空间标签分析数据
     *
     * @param spaceTagAnalyzeRequest 空间标签分析请求参数
     * @param loginUser 当前登录用户
     * @return 空间标签分析响应列表
     */
    List<SpaceTagAnalyzeResponse> getSpaceTagAnalyze(SpaceTagAnalyzeRequest spaceTagAnalyzeRequest, User loginUser);

    List<SpaceSizeAnalyzeResponse> getSpaceSizeAnalyze(SpaceSizeAnalyzeRequest spaceSizeAnalyzeRequest, User loginUser);

    List<SpaceUserAnalyzeResponse> getSpaceUserAnalyze(SpaceUserAnalyzeRequest spaceUserAnalyzeRequest, User loginUser);

    List<Space> getSpaceRankAnalyze(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest, User loginUser);
}